
package cn.iocoder.yudao.module.api.pay.bill.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  创建账单流水
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2024/12/17
 */
@Data
public class PayBillRespDTO {

    @Schema(description = "关联id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18439")
    @NotNull(message = "关联id不能为空")
    private String relateId;

    @Schema(description = "账单模式：0=支出、1-收入", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "账单模式不能为空")
    private Integer mode;

    @Schema(description = "账单标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "账单标题不能为空")
    private String title;

    @Schema(description = "资产种类", requiredMode = Schema.RequiredMode.REQUIRED, example = "money")
    @NotNull(message = "资产种类不能为空")
    private String category;

    @Schema(description = "明细类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "pay_product")
    @NotNull(message = "明细类型不能为空")
    private String type;

    @Schema(description = "明细数字，若为零钱则单位为分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "明细数字不能为空")
    private BigDecimal number;

    @Schema(description = "剩余", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "剩余不能为空")
    private BigDecimal balance;

    @Schema(description = "备注")
    private String mark;

    @Schema(description = "添加时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

}